<?php

class SettingController extends Controller
{
	/**
	 * @var string the default layout for the views. Defaults to 'column2', meaning
	 * using two-column layout. See 'protected/views/layouts/column2.php'.
	 */
	public $layout='column2';
	public $defaultAction='update';

	/**
	 * @return array action filters
	 */
	public function filters()
	{
		return array(
			array('SetSaveAttributesFilter + update',),
		);
	}
	
	/**
	 * Updates a particular model.
	 * If update is successful, the browser will be redirected to the 'view' page.
	 */
	public function actionUpdate()
	{
	    // извлекаем элементы, которые будем обновлять в пакетном режиме,
	    // предполагая, что каждый элемент является экземпляром класса модели 'Item'
	    $items=$this->getItemsToUpdate();
	    if(isset($_POST['Setting']))
	    {
	        $valid=true;
	        foreach($items as $i=>$item)
	        {
	            if(isset($_POST['Setting'][$i]))
	                $item->attributes=$_POST['Setting'][$i];
	            $valid=$valid && $item->validate();
	        }
	        if($valid)  // все элементы корректны
	        {
	            foreach($items as $i=>$item)
	            {
	            	$item->save(false);
	            }
	            $this->redirect(array('update'));
	        }
	    }
	    // отображаем представление с формой для ввода табличных данных
	    $this->render('update',array('items'=>$items));
	}
	
	protected function getItemsToUpdate()
	{
		return Setting::model()->findAll();
	}
}